package com.datacenter.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 接口调用日志实体类
 * 
 * 业务含义：
 * 记录所有API接口的调用详情，用于实时监控调用量、失败率、响应时间
 * 支持异常行为预警，如同IP频繁调用、调用失败率过高
 */
@Data
@TableName("ods_api_call_log")
public class ApiCallLog {
    
    @TableId(type = IdType.AUTO)
    private Long id;
    
    /**
     * 资源ID
     * 业务含义：关联的资源元数据ID
     */
    private Long resourceId;
    
    /**
     * 接口地址
     * 业务含义：实际调用的接口URL
     */
    private String apiUrl;
    
    /**
     * 调用时间
     * 业务含义：接口调用的具体时间，精确到秒
     */
    private LocalDateTime callTime;
    
    /**
     * 响应时间
     * 业务含义：接口响应耗时，单位毫秒，用于性能监控
     */
    private Integer responseTime;
    
    /**
     * 状态码
     * 业务含义：HTTP状态码，200-成功，其他-失败
     */
    private Integer statusCode;
    
    /**
     * 调用IP
     * 业务含义：调用方的IP地址，用于异常行为检测
     */
    private String ipAddress;
    
    /**
     * 用户ID
     * 业务含义：调用用户的唯一标识
     */
    private String userId;
    
    /**
     * 部门
     * 业务含义：调用用户所属部门
     */
    private String department;
}
